The invention relates generally to recognizing features in three-dimensional solid models and more particularly to a system and method for recognizing blends in a solid model of a part.
Solid Modeling
Solid modeling is a term that refers to a set of techniques that can be used to create and store computer based representations of physical objects. A number of techniques have evolved over the years for providing computer-based representations of three-dimensional parts. One of these techniques is Boundary Representation, commonly referred to as B-rep.
A B-rep model of a mechanical part consists of a set of xe2x80x9cfaces,xe2x80x9d xe2x80x9cedgesxe2x80x9d and xe2x80x9cvertices,xe2x80x9d which are connected together to form a topological structure of the part. By using such a representation, it is possible to evaluate many properties of the part from its computer model. These include the mass, the volume, the moments of inertia and products of inertia. Additionally, such models enable computer-based analysis of stress and strains in the part under different loading conditions. B-rep based computer models can also be xe2x80x9ccutxe2x80x9d and examined in a manner similar to an actual part. For these reasons, a B-rep model of a part is known as a xe2x80x9csolidxe2x80x9d model.
Software based on solid modeling is widely used by engineers to create models of parts that are intended to eventually be manufactured. Software such as SolidWorks(trademark) (SolidWorks Inc.), Pro/Engineer(trademark) (Parametric Technology), I-DEAS(trademark) (Structural Dynamics Research Corp.), Mechanical Desktop(trademark) (AutoDesk) are examples of solid modeling software.
Feature recognition is the art of evaluating a B-rep (or other type) model of a part that is missing information regarding certain features of the model, recognizing those features and creating a database of those recognized features. A feature recognition system is used in these situations to aid in finding the design intent of the model from the B-Rep information and blend recognition is one of the important steps in the process of feature recognition.
The purpose of feature recognition is to recognize various features in a B-Rep model that typically does not have explicit feature information. The feature information may either be absent initially itself or may be lost due to translation of data from one CAD system to another. U.S. patent application Ser. No. 09/676,471, filed Oct. 2, 2000, discloses methods for recognizing another type of feature in B-rep solid models: holes, specifically, sets of complex, interacting holes. U.S. application Ser. No. 09/676,471 was commonly owned with the present invention at the time that the present invention was made.
Certain solid models also have blends as part of their design. Blends are mainly used to smoothen sharp edges and vertices of a part in order to improve their strength, the aesthetics, and to ensure the manufacturability of the part. FIG. 2 shows an example of blending the part shown in FIG. 1. Blend recognition can be used to detect all the blend features in the model along with the blend parameters. Blend recognition can also be used to detect the blend sequence that describes the order in which the blend features were created in a model.
One application of blend recognition is to aid in blend suppression or blend deletion. The blend recognition method disclosed herein detects the sequence in which blend chains were created in the model. The reverse of this sequence can be used to delete the blends in the model. Blend deletion helps in simplifying the part for downstream applications. Blend deletion also facilitates recognition of other volumetric features such as pockets/slots in the model. Deletion of the blend chains results in a model with sharp edge and vertices. FIG. 1 shows the solid model that is obtained after suppressing the blends in the solid model shown in FIG. 2.
Blend recognition can also be used to extract important parameters for manufacturing applications. For example, the blend parameters can provide information that will aid in selection of tools during machining.
Another application of blend recognition and suppression is for clean up operations in Finite Element Analysis (FEA). For example, it is often necessary to suppress blends that are less than a specific radius to simplify the model for further analysis. This facility for selective blend suppression can be implemented by utilizing the blend sequence generated by the blend recognizer of the present invention.
The present invention provides methods for automatic detection of blends in the model, for deducing the sequence in which the blends were created in the model and, these can eventually be used, if desirable, for deleting a set of recognized blends from the model.
Overview of Blends
Blends are typically introduced in solid modeling to smoothen sharp edges and vertices in the part. In this operation, called blending or filleting, new faces are introduced in place of the sharp edges to create smooth transitions from one surface to another. When creating solid model representations of parts, designers use various techniques provided by CAD systems to model fillets and blends.
Blends are of interest to engineers during all stages of the design-to-manufacturing cycle. While editing a part model, designers may be interested in modifying blend parameters such as the radius of the blend. In the analysis stage, an engineer may prefer to ignore some blends since they are not expected to contribute significantly to stresses and strains in the part. During manufacturing planning, the blend radii govern the selection of some of the manufacturing processes, the machine tools, the cutting tools and even the part stock itself.
The most common blend is the so-called facexe2x80x94face blend, which replaces a sharp edge by a face tangent to the two faces adjoining the sharp edge. The blend surface usually has a circular cross section, and the plane of the cross section is always perpendicular to both the faces. When three or more blended edges meet at a common vertex, a vertex blend is formed that connects all the neighboring blends smoothly. In simple blending, the geometry of a vertex blend is usually a sphere; however, in the general case, the geometry is described by an n-sided vertex blend surface.
In special cases, blending can also take place between a face and an edge. Such blends are called face-edge blends or cliff blends, and may occur as boundary cases of face-face blends. FIG. 2 shows an example that contains a few kinds of blend surfaces created while blending the simple part shown in FIG. 1. Blend K is a face-face blend on the top block of the part that essentially rounds the edge between the top face A and the face B. Blend P is a vertex blend that is made at one corner of the top block of the part and blend D is a face-edge blend between face B and edge E5.
In many situations, blends created in different blending operations interact with each other forming a blend network. The knowledge of the blend sequence is essential to understand the design intent of the model. This sequence also aids in post-recognition operations such as blend suppression. Frequently in real parts, a number of blends interact with each other to form a complex blend network. A blend network formed in multiple blending operations is shown in the solid model in FIG. 2.
The invention is a method implemented by a computer program, and a computer running the same, for recognizing complex blends in solid B-Rep models. In addition to recognizing individual blend faces, the method according to the invention can also group the set of blends created as a single feature (a chain), detect the sequence in which the blend chains got created. This sequence can be used to delete some or all of the blendsxe2x80x94if required.
The invention comprises several software modules that, in a preferred embodiment, operate on B-rep solid models. The modules may be implemented in any computer programming language, such as C or C++, and may use local operators from known geometric modeling kernels.
The blend recognition method receives a boundary representation from, for example, one of the solid modeling programs mentioned above or from any other source capable of providing a standardized data structure for describing solids. The method identifies all blend faces and provides a sequence of blend chains in the solid model along with the corresponding blend parameters. Each blend chain consists of blend faces that could have been created in the same blending operation. The chains are sequenced in an order that denotes a sequence that could have been used to create the blend network.
In the model in FIG. 2, there are four blend chains. The sequence of the chains shows the order in which the blends were created in the original model. The four chains are as follows:
Chain 1xe2x80x94Blend Faces: K, P, L, I
Chain 2xe2x80x94Blend Face: O
Chain 3xe2x80x94Blend Faces: D, J, H
Chain 4xe2x80x94Blend Faces: M, N
Blending Terminology
The blend geometry is computed using an imaginary rolling ball that maintains contact with the surfaces to be blended. The blend surface can be visualized as the envelope of this ball as it rolls along the edge. Blending may either add material to or remove material from a model, depending on the convexity characteristics of the blended edge. A blend on a convex edge removes material from the model, while a blend on a concave edge adds material to the model. The locus of points traced by the rolling ball center is called the spine curve; the two edges of contact are called spring edges. The side faces of the blend are called the support faces since they support the rolling ball.
Often during blending, a single blend operation generates many blend faces connected smoothly to each other. Such sets of blend faces created in a single blending operation are referred to as chains. The edges that connect adjacent faces in a blend chain are called cross edges. Cross edges are usually generated when any of the adjoining support faces of the blend changes during blending. In FIG. 2, edge E9 is a spring edge between faces A and L, and edge E19 is a cross edge between blend faces L and P (P is a special type of blend face called a vertex face, as will be discussed later). Cross edge E20 is part of a blend chain including faces K and P.
The blend curvature at a point on the blend surface is the curvature along the cross-section of the blend surface at that point. This is constant for constant radius blends and is equal to the principal curvature along that direction. The principal direction corresponding to the blend curvature at each point is termed as the blend direction. The commonly used face-face blends have constant cross-sectional radius throughout the blend surface. These are referred to as constant radius blends. Many modeling systems also support variable radius blends that have varying cross-sectional radii. Such blends usually arise during drafting blended models. An example of a variable radius blend is shown as face N in FIG. 2.